﻿Public Class frm_reporteEmpleados
    Dim accesoDatos As New AccesoDatos("Empleado")
    'Declaramos variables para el ancho y el alto 
    Dim ancho As Integer
    Dim alto As Integer
    'Variable para la primera ejecución y que no utilice el resize 
    Dim primero As Boolean

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sql As String
        Dim reporte As New Reporte_Empleados
        Dim tabla As New Data.DataTable

        sql = "SELECT * FROM Empleado e"
        sql &= " WHERE 1=1 "
        

        tabla = AccesoDatos.consulta(sql)
        reporte.SetDataSource(tabla)
        Me.crv_empleados.ReportSource = reporte
        Me.crv_empleados.Show()
        Me.crv_empleados.Refresh()
    End Sub

    Private Sub frm_reporteEmpleados_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Inicializamos valor a las variables globales. 
        ancho = Me.Width
        alto = Me.Height
    End Sub

    Private Sub frm_reporteEmpleados_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        'Por si ocurre algun error inesperado 
        On Error Resume Next
        'Variables para los porcentajes 
        Dim porcancho As Integer
        Dim porcalto As Integer
        ' Aquí evitamos lo innecesario de ajustar cuando la ventana se minimiza 
        If WindowState = FormWindowState.Minimized Then
            'Simplemente salimos del procedimiento. 
            Exit Sub
        End If
        'Si es la primera ejecución... 
        If primero = False Then
            'Damos valor verdadero a la variable para la próxima 
            primero = True
            'Salimos 
            Exit Sub
        End If
        'Obtenemos los porcentaje de ancho y alto 
        porcancho = FormatNumber((Me.Width * 100) / ancho, 2)
        porcalto = FormatNumber((Me.Height * 100) / alto, 2)
        'recorremos absolutamente todos los controles. 
        For Each CControl As Control In Me.Controls
            'Asignamos la nueva posición y dimensión. 
            CControl.Top = (CControl.Top * porcalto) / 100
            CControl.Left = (CControl.Left * porcancho) / 100
            CControl.Width = (CControl.Width * porcancho) / 100
            CControl.Height = (CControl.Height * porcalto) / 100
        Next
        'A las variables globales a nivel del formulario 
        'Le asignamos el actual valor. 
        ancho = Me.Width
        alto = Me.Height
    End Sub
End Class